To a user, a data-storage system appears as a collection of volumes for storing data. A user who requests that data be stored in a particular volume often has the illusion that that data is being written to a particular physical disk.
In fact, what a user considers to be a volume may not correspond to a physical disk. In most cases, the volume is a logical volume that may occupy only a portion of a single physical disk drive. In some cases, for example when a logical volume is mirrored onto two or more physical disk drives, there is no one to one mapping between a volume and a physical drive.
The distribution, or mapping, of logical volumes onto actual physical disks has significant impact on the performance of the data-storage system. For example, when a logical volume is mirrored, each write to that volume requires a write operation to at least two physical disks. If a logical volume and its mirror were to reside on the same physical disk, then each write to that logical volume would trigger contention for the single write head associated with that disk. As a result, the two write operations required to mirror a logical volume would have to be done serially.
The problem of contention arises not just in connection with the sharing of a physical disk. Contention can arise in connection with all hardware resources. For example, if a logical volume and its mirror were on two different disks but both disks shared the same bus, there would be contention for that bus. To the extent that two logical volumes share any hardware resource of the data processing system, there exists a possibility of contention for that hardware resource.
The process of configuring the data-storage system includes the allocation of hardware resources to various logical volumes. Because of the large number of logical volumes in a typical installation, this is typically a lengthy and error prone process performed by a field service technician following delivery of the data-storage system.
The invention provides a computer-implemented method for automatically configuring a data-storage system with a minimum of intervention by field-service personnel. The method includes receiving a specification of mass-storage elements that are to be incorporated into the data-storage system. These mass- storage elements can be physical elements, such as physical disks. Alternatively, the mass-storage elements can be logical elements such as logical volumes that reside on physical disks.
Each data-storage system includes installed resources that are available for sharing among the mass-storage elements that are to be incorporated into the data-storage system. The automated configuration method identifies these installed resources and maps each mass-storage element onto a subset of the installed resources. This subset is selected so as to balance the additional load imposed on the installed resources as a result of incorporating the additional mass-storage elements into the data-storage system. In an optional step, the resulting subset of installed resources is displayed.
In one aspect of the invention, mapping each of the mass-storage elements to a subset of the installed resources includes selecting the subset of installed resources to minimize an extent to which any two mass-storage elements share a common resource.
According to one specific architecture, identifying the installed resources includes identifying a plurality of system buses available for carrying data to and from a mass-storage element. In such a case, identifying the installed resources also includes identifying a plurality of disk directors available for controlling data communication between a mass-storage element and the data-storage system, each of the disk directors being connected to one of the system buses. The identification of installed resources can also include the identification of strings associated with the disk directors, each of the strings being available for mounting a mass-storage element.
In one aspect of the invention, the identification of installed resources includes classifying the installed resources into a plurality of resource classes, In such a case, allocating a subset of the installed resources to each of the mass-storage elements includes selecting the subset to minimize an extent to the mass-storage elements share installed resources within a resource class.